package cn.micro.tree.function;

import cn.micro.tree.bean.TreeNodeWrapper;

import java.util.List;

@FunctionalInterface
public interface NodeConvertToT<T> {

    /**
     * 节点属性转换为 T 类型
     *
     * @param wrapper 节点属性
     * @return T 类型 bean
     */
    T convert(TreeNodeWrapper wrapper);

    /**
     * 设置T类型 bean 子类关联列表
     * 不重写设置得到的始终是根节点 T 类型 bean
     * @param main     父 T 类型
     * @param children 子 T 类型列表
     */
    default void children(T main, List<T> children) {

    }

}
